package com.yunwaikeji.gy_tool_library.interface1;

import android.graphics.drawable.Drawable;

import com.yunwaikeji.gy_tool_library.info.GYDisplayInfo;
import com.yunwaikeji.gy_tool_library.info.GYViewInfo;

public interface GYViewBgBuilderInterface<V, VS> {
    V clearAllGround();

    VS setBackground(Drawable background);

    Drawable getBackground();

    VS setBackgroundColor(int backgroundColor);

    VS setBackgroundColors(int... backgroundColor);

    VS setChangeEffect(@GYViewInfo.ChangeEffect int changeEffect);

    int getChangeEffect();

    VS setChangeground(Drawable changeDrawable);

    Drawable getChangeground();

    VS setChangeColor(int changeColor);

    VS setChangeColors(int... changeColors);

    VS setDisplayStyle(@GYDisplayInfo.DisplayStyle int displayStyle);

    @GYDisplayInfo.DisplayStyle
    int getDisplayStyle();

    VS setRadiusPx(int radiusPx);

    VS setRadiusDp(int radiusDp);

    VS setRadiusLeftTopPx(int radiusLeftTopPx);

    int getRadiusLeftTopPx();

    VS setRadiusLeftTopDp(int radiusLeftTopDp);

    VS setRadiusRightTopPx(int radiusRightTopPx);

    int getRadiusRightTopPx();

    VS setRadiusRightTopDp(int radiusRightTopDp);

    VS setRadiusRightBottomPx(int radiusRightBottomPx);

    int getRadiusRightBottomPx();

    VS setRadiusRightBottomDp(int radiusRightBottomDp);

    VS setRadiusLeftBottomPx(int radiusLeftBottomPx);

    int getRadiusLeftBottomPx();

    VS setRadiusLeftBottomDp(int radiusLeftBottomDp);

    VS setEdgeWidthPx(int edgeWidthPx);

    int getEdgeWidthPx();

    VS setEdgeWidthDp(int edgeWidthDp);

    VS setEdgeColor(int edgeColor);

    int getEdgeColor();

    VS setEdgeOver(boolean edgeOver);

    boolean isEdgeOver();

    VS setIsChangeBackground(boolean changeBg);

    boolean isChangeBackground();

    V build();
}
